home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / docs / lwml9504.lha / LIGHTWAVE-APR95 / 000183_owner-lightwave-l _Sat Apr 8 21:54:05 1995.msg < prev    next >
Internet Message Format  |  1995-05-06  |  7KB

  1. Return-Path: <owner-lightwave-l>
  2. Received: by mail2.netcom.com (8.6.12/Netcom)
  3.     id PAA00607; Sat, 8 Apr 1995 15:56:01 -0700
  4. Received: from gaspra.pd.com by mail2.netcom.com (8.6.12/Netcom)
  5.     id PAA00523; Sat, 8 Apr 1995 15:55:17 -0700
  6. Received: by gaspra.pd.com (8.6.9/1.37)
  7.     id PAA10882; Sat, 8 Apr 1995 15:37:21 -0700
  8. Date: Sat, 8 Apr 1995 15:37:19 -0700 (MST)
  9. From: Dave Gilinsky <dave@gaspra.pd.com>
  10. To: Lightwave List <lightwave-l@netcom.com>
  11. Subject: Re: Revenge of the NURBS
  12. In-Reply-To: <v02110100abab27f834cc@[192.0.2.1]>
  13. Message-ID: <Pine.SUN.3.91.950407153004.4538C-100000@gaspra.pd.com>
  14. MIME-Version: 1.0
  15. Content-Type: TEXT/PLAIN; charset=US-ASCII
  16. Sender: owner-lightwave-l@netcom.com
  17. Precedence: bulk
  18.  
  19. On Fri, 7 Apr 1995, Carl Andrew Johnson wrote:
  20.  
  21. > I've heard the term for a couple of years now, but I have no clue as to
  22. > what it means.
  23. > *WHAT* is a.... NURB.
  24.  
  25. I'm glad you asked that. ;)
  26.  
  27. The following description of 'NURB' is intended to be taken as a brief 
  28. introduction to splines, preferably with a chaser.  For more information, 
  29. you should read   Computer Graphics
  30.         Principles and Practice
  31.          Foley, van Dam, Feiner, Hughes
  32.             Second Edition
  33.     Addison Wesley Publishing Company
  34.         ISBN 0-201-12110-7
  35.  
  36. 'NURB' stands for nonuniform rational B-spline.  We may obtain an
  37. understanding of the phrase by working through it from 'spline' to
  38. 'non-uniform'.  According to Computer Graphics by James Foley, Andries van
  39. Dan, et al., the term spline alludes to the "long flexible strips of metal
  40. used by draftspersons to lay out the surfaces of airplanes, cars and
  41. ships."  These strips of metal had weights attached to them by which the
  42. draftsperson could pull the spline in various directions to make all 
  43. kinds of curves.  
  44.     The method of simulating curves that Lightwave users are probably
  45. most familiar with is first degree, piecewise linear approximation.  Using
  46. this method, an animator or modeler uses many linear or planer elements to
  47. approximate a curve or surface.  Surfaces are built out of planer
  48. polygons;  the more polygons are added, the more closely the modeled
  49. surface resembles a 'real', smoothly curving surface.  Surfaces result
  50. whose visual integrity is dependent on tens or hundreds of thousands of
  51. polygons with critical positions. 
  52.     Another method of simulating curves is parametric representation. 
  53. Using this method, curves are approximated by stringing polynomial curves
  54. together rather than stringing lines together.  Each curve segment is
  55. defined by three cubic polynomial functions.  For example, a curve segment
  56. might look like this: Q(t)=[x(t) y(t) z(t)], where the polynomials are of
  57. the form
  58.     
  59.     x(t) = axt^3 + bxt^2 + cxt + dx,
  60.     y(t) = ayx^3 + byt^2 + cyt + dy,
  61.     z(t) = azt^3 + bzt^2 + czt + dz,    0<=t<=1.
  62.                 |       |       |     |
  63.     these columns should be subscripted     so should these things
  64.                                                         |
  65. If curve segments join together, they are said to have G0 geometric
  66. continuity.  It's often useful to have curve segments join together, so G0
  67. continuity is pretty important. Other types of continuity are defined by
  68. comparing the derivatives of the curve segments, called the parametric
  69. tangent vectors.  If the tangent vectors of two segments are equal in
  70. direction at the joint point, they are said to have G1 geometric
  71. continuity.  If the tangent vectors of two curve segments are equal in
  72. both direction and magnitude at their joint point, the curve is said to be
  73. C1 continuous, or have first degree continuity.  The degree of continuity
  74. is dependent on through how many derivatives the direction and magnitude
  75. of the tangent vectors at the joint point are equal.  For example, if the
  76. tangent vectors at the joint point of two curves are equal through the nth
  77. derivative, the curve is said to have Cn continuity.  This is important to
  78. understand from an animators point of view, because the tangent vector
  79. Q'(t) is the velocity of a point on the curve with respect to the
  80. parameter t.  The second derivative of Q(t) is the acceleration.  A curve
  81. with C2 continuity will have continuous acceleration across the joint
  82. point.
  83.     Getting back to the topic, B-splines are curves consisting of m-2
  84. cubic polynomial curve segments which approximate a series of m+1 control
  85. points where m=>3.  The 'B' part comes from the fact that these splines
  86. can be represented as the weighted sums of polynomial basis functions,
  87. where natural splines cannot.  B-splines have C0, C1 and C2 continuity.
  88. They do not interpolate their control points.  B-splines are said to have
  89. "local control" in that the polynomial coefficients of the curve segments
  90. are not dependent on all the control points, as they are in natural cubic
  91. splines.  This means that moving one of the approximation control points
  92. for a B-spline only affects a small part of a curve, not the whole thing,
  93. as it would in a natural cubic spline.  If the parameter domains for the
  94. curve segments are sequential, so that the range on which Qi is defined
  95. is ti<=t<=ti+1, then for each i=>4, there is a joint point called a "knot"
  96. between Qi-1 and Qi at the parameter value ti. 
  97.     Rational B-splines are those whose curve segments are ratios of
  98. polynomials, like this
  99.     
  100.     x(t)=XT(t)/W(t) y(t)=Y(t)/W(t) z(t)=Z(t)/W(t)    
  101.  
  102.   This is important because rational curves are invariant under rotation,
  103. scaling, translation and perspective transformations of the control
  104. points.  Nonrational curves are not invariant under perspective
  105. transformations of the control points.  Rational curves can also define any
  106. of the conic sections without using large numbers of control points close to 
  107. the conic. 
  108.     Nonuniform B-splines can have parameter intervals between knot
  109. values that are not uniform.  This means that knots and control points 
  110. can be added to reshape curves at any time.  Control points can 
  111. have C0 continuity and be interpolated without neighboring segments being 
  112. straight lines.  Starting and ending points can be also be interpolated 
  113. exactly without neighboring segments being straight lines.
  114.     
  115.     So, NURBS are curves made up of segments, which are ratios of cubic 
  116. polynomials, that can be manipulated independently of one another between 
  117. joints called knots that don't have to be spaced at even intervals.
  118.  
  119.     I'm sure someone will let me know if I made any ridiculous mistakes.;)
  120.  
  121. See you all at NAB!
  122.                         Dave Gilinsky (DG75)
  123.                         Pixel Dust, Inc.
  124.                         dave@gaspra.pd.com
  125. _______________________________________________________________________________
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.